package com.aspose.cells;

class zcq {
   static void a(zuk var0) {
      byte[] var1 = var0.f();
      if (var1 != null && var1.length >= 2) {
         if (var1.length == 2) {
            var0.a(new byte[4]);
         } else {
            byte[] var2 = new byte[var1.length + 2];
            System.arraycopy(var1, 0, var2, 0, 2);
            System.arraycopy(var1, 2, var2, 4, var1.length - 2);
            var0.a(var2);
         }
      }
   }

   public static byte[] a(byte[] var0, int var1, int var2, int var3, boolean var4) {
      int var5 = var0.length;
      int var6 = var5;
      int var7 = var5;
      boolean var8 = false;
      zct var9 = null;
      zct var10 = null;
      int var11 = var1;
      if (var1 == -1) {
         var11 = 2;
         var5 = com.aspose.cells.b.a.zc.e(var0, 0) & '\uffff';
         var7 = var6 = var5 + var11;
         var9 = new zct(var5 * 2);
         if (var7 != var0.length) {
            var10 = new zct(var0.length - var7);
         }

         var8 = true;
      } else {
         var9 = new zct(var5 * 2);
      }

      a(var0, var11, var7, var6, var9, var10, var2, var3, var4);
      if (var8) {
         int var15 = 4 + var9.b() + 4 + (var10 == null ? 0 : var10.b());
         byte[] var13 = new byte[var15];
         System.arraycopy(com.aspose.cells.b.a.zc.a(var9.b()), 0, var13, 0, 4);
         var9.a(var13, 4);
         int var14 = 4 + var9.b();
         if (var10 != null) {
            System.arraycopy(com.aspose.cells.b.a.zc.a(var10.b()), 0, var13, var14, 4);
            var10.a(var13, var14 + 4);
         }

         return var13;
      } else {
         byte[] var12 = new byte[var9.b()];
         var9.a(var12, 0);
         return var12;
      }
   }

   private static int[] a(byte[] var0, int var1, int var2, int var3, zct var4, zct var5, int var6, int var7, boolean var8) {
      int var9 = var1;
      int var10 = var2;

      while(true) {
         while(var9 < var3) {
            int var13;
            int var14;
            int[] var15;
            switch(var0[var9]) {
            case 1:
            case 2:
               var4.a(var0, var9, 3);
               var4.a((int)2);
               var4.a(var0, var9 + 3, 2);
               var9 += 5;
               break;
            case 3:
            case 4:
            case 5:
            case 6:
            case 7:
            case 8:
            case 9:
            case 10:
            case 11:
            case 12:
            case 13:
            case 14:
            case 15:
            case 16:
            case 17:
            case 18:
            case 19:
            case 20:
            case 21:
            case 22:
               var4.a(var0[var9]);
               ++var9;
               break;
            case 23:
               byte var11 = var0[var9 + 1];
               if (var11 == 0) {
                  var4.a(var0, var9, 2);
                  var4.a((byte)0);
                  var9 += 3;
               } else {
                  if (var0[var9 + 2] != 0) {
                     var4.a(var0, var9, 2);
                     var4.a((byte)0);
                     var4.a(var0, var9 + 3, (var11 & 255) * 2);
                     var9 += (var11 & 255) * 2 + 3;
                     continue;
                  }

                  var4.a(var0, var9, 3);
                  byte[] var17 = new byte[(var11 & 255) * 2];

                  for(var13 = 0; var13 < (var11 & 255); ++var13) {
                     var17[var13 * 2] = var0[var9 + 3 + var13];
                  }

                  var4.a(var17, 0, var17.length);
                  var9 += (var11 & 255) + 3 & '\uffff';
               }
               break;
            case 24:
               if (var0[var9 + 1] == 25) {
                  var4.a(var0, var9, 14);
                  var9 += 14;
               } else if (var0[var9 + 1] == 29) {
                  var4.a(var0, var9, 6);
                  var9 += 6;
               } else {
                  var4.a(var0[var9]);
                  ++var9;
               }
               break;
            case 25:
               boolean var12 = false;
               int var16;
               switch(var0[var9 + 1]) {
               case 1:
                  var16 = 4;
                  var4.a(var0, var9, var16);
                  break;
               case 2:
                  var16 = 4;
                  break;
               case 4:
                  var13 = com.aspose.cells.b.a.zc.e(var0, var9 + 4);
                  var16 = (var13 & '\uffff') + 4;
                  break;
               case 8:
                  var16 = 4;
                  break;
               case 16:
                  var16 = 4;
                  var4.a(var0, var9, var16);
                  break;
               case 32:
                  var16 = 4;
                  break;
               case 64:
                  var16 = 4;
                  break;
               default:
                  var16 = 4;
               }

               var9 += var16;
               break;
            case 26:
            case 27:
            case 46:
            case 47:
            case 48:
            case 49:
            case 50:
            case 51:
            case 52:
            case 53:
            case 54:
            case 55:
            case 56:
            case 62:
            case 63:
            case 78:
            case 79:
            case 80:
            case 81:
            case 82:
            case 83:
            case 84:
            case 85:
            case 86:
            case 87:
            case 88:
            case 94:
            case 95:
            case 110:
            case 111:
            case 112:
            case 113:
            case 114:
            case 115:
            case 116:
            case 117:
            case 118:
            case 119:
            case 120:
            default:
               var4.a(var0[var9++]);
               break;
            case 28:
            case 29:
               var4.a(var0, var9, 2);
               var9 += 2;
               break;
            case 30:
            case 33:
            case 65:
            case 97:
               var4.a(var0, var9, 3);
               var9 += 3;
               break;
            case 31:
               var4.a(var0, var9, 9);
               var9 += 9;
               break;
            case 32:
            case 64:
            case 96:
               var4.a(var0[var9]);
               var4.a((int)14);
               var10 = a(var0, var10, var5);
               var9 += 8;
               break;
            case 34:
            case 66:
            case 98:
               var4.a(var0, var9, 4);
               var9 += 4;
               break;
            case 35:
            case 67:
            case 99:
               var4.a(var0, var9, 5);
               var9 += 5;
               break;
            case 36:
            case 42:
            case 68:
            case 74:
            case 100:
            case 106:
               var4.a(var0, var9, 3);
               var4.a((int)2);
               var4.a(var0, var9 + 3, 2);
               var9 += 5;
               break;
            case 37:
            case 69:
            case 101:
               var4.a(var0, var9, 3);
               var4.a((int)2);
               var4.a(var0, var9 + 3, 2);
               if (var0[var9 + 1] == 0 && var0[var9 + 2] == 0 && (var0[var9 + 3] & 255) == 255 && (var0[var9 + 4] & 255) == 255) {
                  var4.a((byte)15);
                  var4.a((int)1);
               } else {
                  var4.a((int)2);
               }

               if (var0[var9 + 5] == 0 && (var0[var9 + 7] & 255) == 255) {
                  var4.a(var0, var9 + 5, 3);
                  var4.a((byte)(var0[var9 + 8] & 255 | 63));
               } else {
                  var4.a(var0, var9 + 5, 4);
               }

               var9 += 9;
               break;
            case 38:
            case 39:
            case 40:
            case 70:
            case 71:
            case 72:
            case 102:
            case 103:
            case 104:
               var4.a(var0, var9, 5);
               var13 = com.aspose.cells.b.a.zc.e(var0, var9 + 5) & '\uffff';
               var14 = var4.b();
               var4.a((int)2);
               var9 += 7;
               var15 = a(var0, var9, var10, var9 + var13, var4, var5, var6, var7, var8);
               var9 = var15[0];
               var10 = var15[1];
               var4.a(var14, com.aspose.cells.b.a.zc.a(var4.b() - var14 - 2), 0, 2);
               break;
            case 41:
            case 73:
            case 105:
               var4.a(var0[var9]);
               var13 = com.aspose.cells.b.a.zc.e(var0, var9 + 1) & '\uffff';
               var14 = var4.b();
               var4.a((int)2);
               var9 += 3;
               var15 = a(var0, var9, var10, var9 + var13, var4, var5, var6, var7, var8);
               var9 = var15[0];
               var10 = var15[1];
               var4.a(var14, com.aspose.cells.b.a.zc.a(var4.b() - var14 - 2), 0, 2);
               break;
            case 43:
            case 75:
            case 107:
               var4.a(var0, var9, 3);
               var4.a((int)2);
               var4.a(var0, var9 + 3, 2);
               var4.a((int)2);
               var4.a(var0, var9 + 5, 4);
               var9 += 9;
               break;
            case 44:
            case 76:
            case 108:
               var4.a(var0[var9]);
               ++var9;
               a(var0, var9, var4, var6, var7);
               var9 += 4;
               break;
            case 45:
            case 77:
            case 109:
               b(var0, var9, var4, var6, var7);
               var9 += 9;
               break;
            case 57:
            case 89:
            case 121:
               var4.a(var0, var9, 7);
               var9 += 7;
               break;
            case 58:
            case 90:
            case 122:
               if (var8) {
                  var4.a(var0, var9, 3);
                  var9 += 3;
                  a(var0, var9, var4, var6, var7);
                  var9 += 4;
               } else {
                  var4.a(var0, var9, 5);
                  var4.a((int)2);
                  var4.a(var0, var9 + 5, 2);
                  var9 += 7;
               }
               break;
            case 59:
            case 91:
            case 123:
               var4.a(var0, var9, 5);
               var4.a((int)2);
               var4.a(var0, var9 + 5, 2);
               if (var0[var9 + 3] == 0 && var0[var9 + 4] == 0 && (var0[var9 + 5] & 255) == 255 && (var0[var9 + 6] & 255) == 255) {
                  var4.a((byte)15);
                  var4.a((int)1);
               } else {
                  var4.a((int)2);
               }

               if (var0[var9 + 7] == 0 && (var0[var9 + 9] & 255) == 255) {
                  var4.a(var0, var9 + 7, 3);
                  var4.a((byte)(var0[var9 + 10] & 255 | 63));
               } else {
                  var4.a(var0, var9 + 7, 4);
               }

               var9 += 11;
               break;
            case 60:
            case 92:
            case 124:
               var4.a(var0, var9, 5);
               var4.a((int)2);
               var4.a(var0, var9 + 5, 2);
               var9 += 7;
               break;
            case 61:
            case 93:
            case 125:
               var4.a(var0, var9, 5);
               var4.a((int)2);
               var4.a(var0, var9 + 5, 2);
               var4.a((int)2);
               var4.a(var0, var9 + 7, 4);
               var9 += 11;
            }
         }

         return new int[]{var9, var10};
      }
   }

   private static void a(byte[] var0, int var1, zct var2, int var3, int var4) {
      boolean var6 = (var0[var1 + 3] & 255 & 128) == 0;
      boolean var7 = (var0[var1 + 3] & 255 & 64) == 0;
      int var8 = com.aspose.cells.b.a.zc.e(var0, var1) & '\uffff';
      if (!var6 && var8 + var3 > 65535) {
         var2.a(var0, var1, 2);
         var2.a((byte)15);
         var2.a((int)1);
      } else {
         var2.a(var0, var1, 2);
         var2.a((int)2);
      }

      int var5 = var1 + 2;
      if (!var7 && (var0[var5] & 255) + var4 > 255) {
         var2.a(var0[var5]);
         var2.a((byte)(var0[var5 + 1] & 255 | 63));
      } else {
         var2.a(var0, var5, 2);
      }

   }

   private static void b(byte[] var0, int var1, zct var2, int var3, int var4) {
      var2.a(var0[var1]);
      int var5 = var1 + 1;
      boolean var6 = (var0[var5 + 5] & 255 & 128) == 0;
      boolean var7 = (var0[var5 + 5] & 255 & 64) == 0;
      boolean var8 = (var0[var5 + 7] & 255 & 128) == 0;
      boolean var9 = (var0[var5 + 7] & 255 & 64) == 0;
      int var10 = com.aspose.cells.b.a.zc.e(var0, var5) & '\uffff';
      if (!var6 && var3 + var10 > 65535) {
         var2.a(var0, var5, 2);
         var2.a((byte)15);
         var2.a((int)1);
      } else {
         var2.a(var0, var5, 2);
         var2.a((int)2);
      }

      var5 += 2;
      var10 = com.aspose.cells.b.a.zc.e(var0, var5) & '\uffff';
      if (!var8 && var3 + var10 > 65535) {
         var2.a(var0, var5, 2);
         var2.a((byte)15);
         var2.a((int)1);
      } else {
         var2.a(var0, var5, 2);
         var2.a((int)2);
      }

      var5 += 2;
      if (!var7 && (var0[var5] & 255) + var4 > 255) {
         var2.a(var0[var5]);
         var2.a((byte)(var0[var5 + 1] & 255 | 63));
      } else {
         var2.a(var0, var5, 2);
      }

      var5 += 2;
      if (!var9 && (var0[var5] & 255) + var4 > 255) {
         var2.a(var0[var5]);
         var2.a((byte)(var0[var5 + 1] & 255 | 63));
      } else {
         var2.a(var0, var5, 2);
      }

      var5 += 2;
   }

   private static int a(byte[] var0, int var1, zct var2) {
      int var4 = (var0[var1] & 255) + 1;
      int var5 = (com.aspose.cells.b.a.zc.e(var0, var1 + 1) & '\uffff') + 1;
      int var3 = var1 + 3;
      var2.a(com.aspose.cells.b.a.zc.a(var4), 0, 4);
      var2.a(com.aspose.cells.b.a.zc.a(var5), 0, 4);

      for(int var6 = 0; var6 < var5; ++var6) {
         for(int var7 = 0; var7 < var4; ++var7) {
            switch(var0[var3]) {
            case 0:
               var2.a((byte)1);
               var2.a((int)2);
               var3 += 9;
               break;
            case 1:
               ++var3;
               var2.a((byte)0);
               var2.a(var0, var3, 8);
               var3 += 8;
               break;
            case 2:
               ++var3;
               int var8 = com.aspose.cells.b.a.zc.e(var0, var3) & '\uffff';
               if (var8 != 0) {
                  var2.a((byte)1);
                  String var9 = null;
                  if (var0[var3 + 2] == 0) {
                     var9 = Encoding.getASCII().a(var0, var3 + 3, var8);
                     var3 += 3 + var8;
                  } else {
                     var9 = Encoding.getUnicode().a(var0, var3 + 3, var8 * 2);
                     var3 += 3 + var8 * 2;
                  }

                  var2.a(com.aspose.cells.b.a.zc.a(var8), 0, 2);
                  var2.a(Encoding.getUnicode().a(var9), 0, var8 * 2);
               } else {
                  var2.a((byte)1);
                  var2.a((int)2);
                  var3 += 3;
               }
               break;
            case 4:
               var2.a((byte)2);
               var2.a(var0[var3 + 1]);
               var3 += 9;
               break;
            case 16:
               var2.a((byte)4);
               var2.a(var0[var3 + 1]);
               var2.a((int)3);
               var3 += 9;
            }
         }
      }

      return var3;
   }
}
